Fix `with_*_does_not_contain` to support `[..]` and macro matching.
authorEric Huss <eric@huss.org>
Thu, 19 Apr 2018 05:13:30 +0000 (22:13 -0700)
committerEric Huss <eric@huss.org>
Thu, 19 Apr 2018 05:13:30 +0000 (22:13 -0700)
tests/testsuite/bench.rs
tests/testsuite/build.rs
tests/testsuite/cargotest/support/mod.rs
tests/testsuite/check.rs

index ce05e1dfee32c3036cef3576e31e1b7ec59e1f71..7347795f0b1af39ac15ff69ce1b16396eb01bc0d 100644 (file)
@@ -267,7 +267,7 @@ fn bench_multiple_targets() {
             .with_status(0)
             .with_stdout_contains("test run1 ... bench: [..]")
             .with_stdout_contains("test run2 ... bench: [..]")
-            .with_stdout_does_not_contain("run3"),
+            .with_stdout_does_not_contain("[..]run3[..]"),
     );
 }
 
index 7cc6b6ffd90554f42370ac9bb826b3f6d871f494..80c1404d915c1a04fc4211062782c5436cae8763 100644 (file)
@@ -4509,7 +4509,7 @@ fn build_virtual_manifest_one_project() {
         p.cargo("build").arg("-p").arg("foo"),
         execs()
             .with_status(0)
-            .with_stderr_does_not_contain("bar")
+            .with_stderr_does_not_contain("[..]bar[..]")
             .with_stderr_contains("[..] Compiling foo v0.1.0 ([..])")
             .with_stderr(
                 "[..] Compiling [..] v0.1.0 ([..])\n\
index 9ee70bf7c46681feaee02bdf08a8f5b361a9a96f..9264bb95018059b1a80d8dc408f33c004a324246 100644 (file)
@@ -687,9 +687,17 @@ impl Execs {
                 }
             }
             MatchKind::NotPresent => {
-                if !actual.contains(out) {
-                    Ok(())
-                } else {
+                let mut a = actual.lines();
+                let e = out.lines();
+
+                let mut diffs = self.diff_lines(a.clone(), e.clone(), true);
+                while let Some(..) = a.next() {
+                    let a = self.diff_lines(a.clone(), e.clone(), true);
+                    if a.len() < diffs.len() {
+                        diffs = a;
+                    }
+                }
+                if diffs.is_empty() {
                     Err(format!(
                         "expected not to find:\n\
                          {}\n\n\
@@ -697,6 +705,8 @@ impl Execs {
                          {}",
                         out, actual
                     ))
+                } else {
+                    Ok(())
                 }
             }
         }
index 264abf898a1621bb6645d4cb93a0e2cbf9af662c..b55342d4c328945323cec8a919af9c0eda649313 100644 (file)
@@ -743,10 +743,10 @@ fn check_filters() {
             .with_status(0)
             .with_stderr_contains("[..]unused_normal_lib[..]")
             .with_stderr_contains("[..]unused_normal_bin[..]")
-            .with_stderr_does_not_contain("unused_normal_t1")
-            .with_stderr_does_not_contain("unused_normal_ex1")
-            .with_stderr_does_not_contain("unused_normal_b1")
-            .with_stderr_does_not_contain("unused_unit_"),
+            .with_stderr_does_not_contain("[..]unused_normal_t1[..]")
+            .with_stderr_does_not_contain("[..]unused_normal_ex1[..]")
+            .with_stderr_does_not_contain("[..]unused_normal_b1[..]")
+            .with_stderr_does_not_contain("[..]unused_unit_[..]"),
     );
     p.root().join("target").rm_rf();
     assert_that(
@@ -764,8 +764,8 @@ fn check_filters() {
             .with_stderr_contains("[..]unused_unit_t1[..]")
             .with_stderr_contains("[..]unused_normal_ex1[..]")
             .with_stderr_contains("[..]unused_unit_ex1[..]")
-            .with_stderr_does_not_contain("unused_normal_b1")
-            .with_stderr_does_not_contain("unused_unit_b1"),
+            .with_stderr_does_not_contain("[..]unused_normal_b1[..]")
+            .with_stderr_does_not_contain("[..]unused_unit_b1[..]"),
     );
     p.root().join("target").rm_rf();
     assert_that(
@@ -775,12 +775,12 @@ fn check_filters() {
             .with_stderr_contains("[..]unused_normal_lib[..]")
             .with_stderr_contains("[..]unused_normal_bin[..]")
             .with_stderr_contains("[..]unused_unit_t1[..]")
-            .with_stderr_does_not_contain("unused_unit_lib")
-            .with_stderr_does_not_contain("unused_unit_bin")
-            .with_stderr_does_not_contain("unused_normal_ex1")
-            .with_stderr_does_not_contain("unused_normal_b1")
-            .with_stderr_does_not_contain("unused_unit_ex1")
-            .with_stderr_does_not_contain("unused_unit_b1"),
+            .with_stderr_does_not_contain("[..]unused_unit_lib[..]")
+            .with_stderr_does_not_contain("[..]unused_unit_bin[..]")
+            .with_stderr_does_not_contain("[..]unused_normal_ex1[..]")
+            .with_stderr_does_not_contain("[..]unused_normal_b1[..]")
+            .with_stderr_does_not_contain("[..]unused_unit_ex1[..]")
+            .with_stderr_does_not_contain("[..]unused_unit_b1[..]"),
     );
     p.root().join("target").rm_rf();
     assert_that(